GO
日志记录了系统每天发生的各种各种的事情,比如监测系统状况、排查系统故障等。你可以通过日志来检查错误发生的原因,或者收到攻击时攻击者留下的痕迹。日志的主要功能是审计和监测,还可以实时地监测系统状态,监测和追踪侵入者等。所以,在以后的工作中,遇到问题,查看日志,才能找到线索,来解决问题。
1. 日志配置文件
日志的配置文件,CentOS6默认改为/etc/rsyslog.conf,之前的版本是/etc/syslog.conf。该配置文件的主要信息为:记录哪些服务和需要记录什么等级的信息。(在工作中若没有特殊需求,不要修改这个配置文件)
日志的格式如下:
格式 | 含义 |
---|---|
auth | pam产生的日志 |
authpriv | ssh、FTP等登陆的验证信息 |
cron | 时间任务相关 |
kern | 内核 |
lpr | 打印 |
邮件 | |
mark(syslog) | rsyslog服务内部的信息,时间标识 |
news | 新闻组 |
user | 用户程序产生的相关信息 |
uucp | unix to unix copy,unix主机之间相关的通讯 |
local 1~7 | 自定义的日志设备 |
日志的级别如下:
级别 | 含义 |
---|---|
debug | 有调试信息的,日志信息最多 |
info | 一般信息的日志,最常用 |
notice | 最艰苦有重要性的普通条件的信息 |
warning | 警告级别 |
err | 错误级别,阻止某个功能或者模块不能正常工作的信息 |
crit | 严重级别,阻止整个系统或者真整个软件不能正常工作的信息 |
alert | 需要立刻修改的信息 |
emerg | 内核崩溃等严重信息 |
none | 什么都不记录 |
说明 | 从上到下,级别从低到高,记录的信息越来越少 |
连接符号如下:
符号 | 含义 |
---|---|
. | 表示大于或等于xxx级别的信息 |
.= | 表示等于xxx级别的信息 |
.! | 表示在xxx之外的等级信息 |
2. 常用日志文件
/var/log/messages
系统最核心的日志文件,包含了系统启动时的i难道消息,以及系统运行时的其它状态消息。I/O错误、网络错误和其它系统错误都会记录到这个文件中。其它信息,比如某个人的身份切换为root,以及用户自定义安装的软件(apache)的日志也会在这里列出。假如某个服务没有定义日志,那么该服务产生的日志就会到这个文件中。该日志每周归档一次。它是如何归档的,是根据/etc/logrotate.conf
来控制的。这个文件也就是该日志的配置文件,而且很容易看明白,如果没有特殊需求,不要更改这个配置文件。/var/log/messages
由syslogd
这个守护进程产生的,如果停掉这个服务则系统不会产生/var/log/messages
。/var/log/wtmp
用来记录用户登陆历史,但是这个文件不能用cat
直接查看,只能用last
查看。/var/log/btmp
用来记录无效登陆历史,和wtmp类似,也不能用cat
直接查看,只能用lastb
查看。/var/log/maillog
用来记录邮件相关的信息,比如发给谁邮件,是否发送成功等信息。mailq
可以查看发送邮件的状态。/var/log/secure
是一个安全认证相关的日志,比如系统用户登陆时,正常登陆或者登陆失败都会记录,另外ftp服务相关的登陆日志也会记录到这里面来。dmesg
这是一个命令,主要用来查看系统实时的硬件设备抛出的信息,如果硬盘异常或者网络异常在或者内核异常都会记录下来,只不过这些信息是存到内存里面的,系统重启后就消失了。(这个还是很有用的)/var/log/dmesg
这是一个日志,记录系统启动时硬件相关的信息。(在启动完成之后不会再有信息记录到这个文件)
3. 查看登陆历史记录
3.1. last命令
last命令用于显示用户最近登录信息。单独执行last命令,它会读取/var/log/wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来。
语法:last [选项] [参数]
选项 | 意义 |
---|---|
-a | 把从何处登入系统的主机名称或IP地址,显示在最后一行 |
-d | 将IP地址转换成主机名称 |
-f file | 指定记录文件 |
-R | 不显示登入系统的主机名称或IP地址 |
-x | 显示系统关机、重新开机,以及执行等级的改变等信息 |
参数:
- 用户名:显示用户登陆列表
- 终端:显示从指定终端的登陆列表
last命令示例如下:
last命令用来查看登陆Linux历史信息,从左到右依次为账户名称、登陆终端、登陆客户端ip、登陆日期及时长。
3.2. lastb
lastb命令用于显示用户错误的登录列表,此指令可以发现系统的登录异常。单独执行lastb命令,它会读取位于/var/log目录下,名称为btmp的文件,并把该文件内容记录的登入失败的用户名单,全部显示出来。
语法:lastb 选项 参数
选项 | 作用 |
---|---|
-a | 把从何处登入系统的主机名称或ip地址显示在最后一行 |
-d | 将IP地址转换成主机名称 |
-f<记录文件> | 指定记录文件 |
-n<显示列数>或-<显示列数> | 设置列出名单的显示列数 |
-R: | 不显示登入系统的主机名称或IP地址 |
-x: | 显示系统关机,重新开机,以及执行等级的改变等信息 |
参数 | 意义 |
---|---|
用户名 | 显示中的用户的登录列表 |
终端 | 显示从指定终端的登录列表 |
实例:
首次运行lastb命令会报下的错误:
只需建立这个不存在的文件即可。
使用ssh的登录失败不会记录在btmp文件中。
3.3. lastlog
astlog命令用于显示系统中所有用户最近一次登录信息。
lastlog文件在每次有用户登录时被查询。可以使用lastlog命令检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log/lastlog的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示Never logged。注意需要以root身份运行该命令。
语法:lastlog 选项
选项 | 意义 |
---|---|
-b 天数 | 显示指定天数前的登陆信息 |
-h | 显示召集令的帮助信息 |
-t 天数 | 显示指定天数以来的登陆信息 |
-u 用户名 | 显示指定用户的最近登陆信息 |
例子:
4. 关于日志使用的建议
在日常的管理工作中要养成多看日志的习惯,尤其是一些应用的日志,比如apache、mysql、php等常用的软件,看它们的日志(错误日志)可以帮助排查问题以及监控它们的运行状况是否良好。
OK